package es.uned.hoomgle.core.services.interfaces;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import es.uned.hoomgle.core.exceptions.HoomgleException;
import es.uned.hoomgle.hibernate.beans.interfaces.HomeI;
import es.uned.hoomgle.hibernate.beans.interfaces.ParameterI;
import es.uned.hoomgle.hibernate.daos.impl.ParameterDao;

public interface HomeServiceI {
	/**
	 * Persistencia del usuario
	 * @param home
	 * @return
	 */
	@Transactional
	public abstract HomeI save(HomeI home);
	
	@Transactional
	public abstract List <HomeI> getQuery(String query);
	
	/**
	 * Recupera una lista de casas con el valor del argumento
	 * en sus propiedades
	 * @param value
	 * @return
	 */
	public List<HomeI> search (String value);
	
	/**
	 * Nuevo inmueble
	 * @param home
	 * @return
	 * @throws HoomgleException
	 */
	public HomeI newHome (HomeI home) throws HoomgleException;

	public abstract int delete(String query)  throws HoomgleException;
	
	public abstract int update(String query);
	
	public HomeI getHomeById(Integer id);
}
